Get an article by ID.
  • 12 May 2026
  • 12 Minutes to read
  • Contributors
  • Dark
    Light

Get an article by ID.

  • Dark
    Light

Article summary

Get
/v3/projects/{project_id}/articles/{article_id}

Returns the latest version of the article (draft or published). To retrieve a specific version, use GET /v3/projects/{projectId}/articles/{articleId}/versions/{versionNumber} instead. The response includes both raw content and rendered HTML. For private or mixed-visibility projects, SAS tokens are appended to media URLs in the content by default.

Security
OAuth

All V3 endpoints require a Bearer token. Generate tokens in the Document360 portal under Settings > API Tokens. Tokens are project-scoped, require the customerApi scope, and do not expire by default. Tokens can be revoked at any time from the portal. Include the token in every request: Authorization: Bearer <your-token>. Alternatively, use the Authorize button below to sign in via OAuth2 Authorization Code flow with PKCE.

FlowAuthorization Code
Authorization URLhttps://identity.document360.net/connect/authorize
Token URLhttps://identity.document360.net/connect/token
Scopes:
customerApiDocument360 Customer API
Path parameters
project_id
string (uuid) Required

The unique identifier of the project. Retrieve project IDs from GET /v3/projects.

Example9a3b4c5d-6e7f-8a9b-0c1d-2e3f4a5b6c7d
article_id
string (uuid) Required

The unique identifier of the article. Retrieve article IDs from GET /v3/projects/{project_id}/articles.

Example9a3b4c5d-6e7f-8a9b-0c1d-2e3f4a5b6c7d
Query parameters
lang_code
string

ISO 639-1 language code (e.g., en, fr). Defaults to the project's primary language if omitted.

Pattern^[a-z]{2}(-[A-Z]{2})?$
Exampleen
content_mode
string

Controls content processing. Use raw (default) for unprocessed content with SAS tokens appended for private/mixed projects. Use display for fully rendered content with Snippets, Variables, and Glossaries resolved, SAS tokens appended, and internal notes removed. Warning: do not use display content for updates — Snippets, Variables, and Glossaries are resolved into inline HTML and the reusable component references will be lost.

Valid values[ "raw", "display" ]
Default"raw"
published
boolean

When true, returns the latest published version. When false (default), returns the latest version including drafts.

Defaultfalse
Responses
200

Article found and returned successfully.

Article retrieved successfully

Returns the latest version of the article with full content, authors, and available languages.

{
  "data": {
    "id": "9a3b4c5d-6e7f-8a9b-0c1d-2e3f4a5b6c7d",
    "title": "Getting Started with Single Sign-On",
    "content": "# Introduction\nThis guide walks you through configuring SSO for your organization.\n\n## Prerequisites\n- An active Document360 project\n- Admin access to your identity provider",
    "html_content": "

Introduction

This guide walks you through configuring SSO for your organization.

Prerequisites

  • An active Document360 project
  • Admin access to your identity provider
", "category_id": "f4a5b6c7-d8e9-0a1b-2c3d-4e5f6a7b8c9d", "project_version_id": "1c2d3e4f-5a6b-7c8d-9e0f-a1b2c3d4e5f6", "version_number": 3, "public_version": 2, "latest_version": 3, "enable_rtl": false, "hidden": false, "status": 0, "order": 0, "created_by": "a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d", "authors": [ { "id": "a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d", "first_name": "Jane", "last_name": "Doe", "email": "[email protected]", "profile_logo_url": "https://cdn.example.com/avatars/jane-doe.png" } ], "created_at": "2025-06-01T09:00:00Z", "modified_at": "2025-08-15T14:30:00Z", "modified_by": "a1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d", "slug": "getting-started-with-single-sign-on", "is_fallback_content": false, "description": "Learn how to configure single sign-on authentication for your knowledge base.", "category_type": 0, "content_type": 0, "is_shared_article": false, "translation_option": "none", "url": "https://docs.example.com/en/articles/getting-started-with-single-sign-on", "current_workflow_status_id": "b7e2a1d4-3f56-4c89-9d0e-1a2b3c4d5e6f", "lang_code": "en", "available_languages": [ { "lang_code": "fr", "url": "https://docs.example.com/fr/articles/getting-started-with-single-sign-on", "translation_status": "translated" } ], "settings": { "seo_title": "SSO Setup Guide - Product Documentation", "description": "Step-by-step instructions for configuring single sign-on with SAML or OIDC providers.", "exclude_from_external_search": false } }, "success": true, "request_id": "req_abc123def456", "errors": null, "warnings": null }
Expand All
object

Generic API response wrapper containing typed data.

data
object

Response data payload.

id
string (uuid) | null

The unique identifier of the article.

Example9a3b4c5d-6e7f-8a9b-0c1d-2e3f4a5b6c7d
title
string | null

The title of the article.

ExampleGetting Started with Single Sign-On
content
string | null

The raw content of the article in its source format.

Example# Introduction\nThis guide walks you through configuring SSO for your organization.
html_content
string | null

The rendered HTML content of the article.

Example<h1>Introduction</h1><p>This guide walks you through configuring SSO.</p>
category_id
string | null

The identifier of the category this article belongs to. Use this value with GET /v3/projects/{projectId}/categories/{categoryId} to retrieve category details.

Examplef4a5b6c7-d8e9-0a1b-2c3d-4e5f6a7b8c9d
project_version_id
string | null

The project version this article belongs to. Corresponds to a version from GET /v3/projects/{projectId}/project-versions.

Example1c2d3e4f-5a6b-7c8d-9e0f-a1b2c3d4e5f6
version_number
integer (int32)

The current version number of the article.

Example3
public_version
integer (int32) | null

The latest published version number, or null if the article has never been published.

Example2
latest_version
integer (int32)

The latest version number including drafts.

Example3
enable_rtl
boolean

Whether right-to-left text direction is enabled.

Examplefalse
hidden
boolean

Whether the article is hidden from readers.

Examplefalse
status
string

The publication status of the article. Possible values: 0 = Draft, 3 = Published.

Valid values[ "draft", "published", "forked", "unpublished" ]
order
integer (int32)

The display order of the article within its category.

Example5
created_by
string | null

The user ID of the original article creator. For full author details including name and avatar, see the authors array. Corresponds to a user from GET /v3/projects/{projectId}/users.

Examplea1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d
authors
Array of object (AuthorResponse) | null

The list of contributors to this article, including the original creator and any subsequent editors.

object

Author information for an article.

id
string (uuid) | null

The unique identifier of the author.

Examplea1b2c3d4-e5f6-7a8b-9c0d-1e2f3a4b5c6d
first_name
string | null

The first name of the author.

ExampleJane
last_name
string | null

The last name of the author.

ExampleDoe
email
string (email) | null

The email address of the author.

profile_logo_url
string | null

The URL of the author's profile image.

Examplehttps://cdn.example.com/avatars/jane-doe.png
created_at
string (date-time)

The date and time the article was created.

Example2025-06-01T09:00:00Z
modified_at
string (date-time)

The date and time the article was last modified.

Example2025-08-15T14:30:00Z
modified_by
string | null

The user ID of who last modified this article. Corresponds to a user from GET /v3/projects/{projectId}/users.

Exampleb2c3d4e5-f6a7-8b9c-0d1e-2f3a4b5c6d7e
slug
string | null

The URL slug for the article.

Examplegetting-started-with-single-sign-on
is_fallback_content
boolean

Whether the content is a fallback from the default language.

Examplefalse
description
string | null

A brief description of the article.

ExampleLearn how to configure single sign-on authentication for your knowledge base.
category_type
string | null

The type of category this article belongs to. Possible values: 0 = Folder, 1 = Page, 2 = Index.

Valid values[ "folder", "page", "index" ]
content_type
string | null

The editor content type of the article. Possible values: 0 = Markdown, 1 = Wysiwyg (rich text), 2 = Block.

Valid values[ "markdown", "wysiwyg", "block" ]
is_shared_article
boolean

Whether the article is shared across multiple projects.

Examplefalse
translation_option
string

The translation status of the article. Possible values: 0 = None, 1 = NeedTranslation, 2 = Translated, 3 = InProgress.

Valid values[ "none", "needTranslation", "translated", "inProgress" ]
url
string (uri) | null

The full URL of the article.

Examplehttps://docs.example.com/en/articles/getting-started-with-single-sign-on
current_workflow_status_id
string | null

The current workflow status identifier. Retrieve available statuses from GET /v3/projects/{projectId}/workflow-statuses.

Exampleb7e2a1d4-3f56-4c89-9d0e-1a2b3c4d5e6f
lang_code
string | null

The language code of this article version.

Exampleen
available_languages
Array of object (AvailableLanguage) | null

The list of languages this article is available in.

object

Represents a language in which an article is available.

lang_code
string | null

The language code (e.g., "en", "fr").

Examplefr
url
string (uri) | null

The URL of the article in this language.

Examplehttps://docs.example.com/fr/articles/getting-started-with-single-sign-on
translation_status
string

The translation status for this language. Possible values: 0 = None, 1 = NeedTranslation, 2 = Translated, 3 = InProgress.

Valid values[ "none", "needTranslation", "translated", "inProgress" ]
settings
object | null

A subset of article settings (SEO title, description, external search exclusion). For full settings including tags, related articles, and display options, use GET /v3/projects/{projectId}/articles/{articleId}/settings.

seo_title
string | null

The custom SEO title for search engines.

ExampleSSO Setup Guide - Product Documentation
description
string | null

The meta description for search engines.

ExampleStep-by-step instructions for configuring single sign-on with SAML or OIDC providers.
exclude_from_external_search
boolean

Whether the article is excluded from external search engine indexing.

Examplefalse
success
boolean

Whether the API request was successful.

request_id
string

Unique identifier for request tracing and correlation.

Min length1
errors
Array of object (ApiError) | null

List of errors if the request failed.

object

Represents an error returned by the API.

code
string

Machine-readable error code (e.g. VALIDATION_ERROR, RESOURCE_NOT_FOUND).

Min length1
message
string

Human-readable error message.

Min length1
field
string | null

The request field that caused the error, if applicable.

details
string | null

Additional context about the error.

warnings
Array of object (ApiWarning) | null

List of non-fatal warnings from the request.

object

Represents a non-fatal warning from the API.

code
string

Machine-readable warning code.

Min length1
message
string

Human-readable warning message.

Min length1
401

Authentication token is missing or invalid.

Headers
WWW-Authenticate
string
Indicates the authentication scheme required. Returns `Bearer` with optional `error` and `error_description` parameters per RFC 6750.
Missing or invalid token

Authentication token is missing or invalid.

{
  "type": "https://developer.document360.com/errors/unauthorized",
  "title": "Unauthorized.",
  "status": 401,
  "detail": "The authentication token is missing or has expired.",
  "instance": null,
  "trace_id": "req_abc123def456",
  "errors": [
    {
      "code": "UNAUTHORIZED",
      "message": "Bearer token is missing or invalid.",
      "field": null,
      "details": null
    }
  ],
  "warnings": null
}
Expand All
object

RFC 7807 Problem Details response for V3 API errors. Content-Type: application/problem+json

type
string

URI reference identifying the error type (links to documentation).

Min length1
title
string

Short human-readable summary of the error type.

Min length1
status
integer (int32)

HTTP status code.

detail
string | null

Human-readable explanation specific to this occurrence.

instance
string | null

URI of the request that generated the error.

trace_id
string | null

Request trace identifier for correlation.

errors
Array of object (ApiError) | null

Structured list of specific errors (extension field).

object

Represents an error returned by the API.

code
string

Machine-readable error code (e.g. VALIDATION_ERROR, RESOURCE_NOT_FOUND).

Min length1
message
string

Human-readable error message.

Min length1
field
string | null

The request field that caused the error, if applicable.

details
string | null

Additional context about the error.

warnings
Array of object (ApiWarning) | null

Non-fatal warnings (extension field).

object

Represents a non-fatal warning from the API.

code
string

Machine-readable warning code.

Min length1
message
string

Human-readable warning message.

Min length1
403

User does not have access to this project.

Insufficient permissions

Insufficient permissions for this resource.

{
  "type": "https://developer.document360.com/errors/forbidden",
  "title": "Forbidden.",
  "status": 403,
  "detail": "You do not have permission to perform this action.",
  "instance": null,
  "trace_id": "req_abc123def456",
  "errors": [
    {
      "code": "FORBIDDEN",
      "message": "Insufficient permissions for this project.",
      "field": null,
      "details": null
    }
  ],
  "warnings": null
}
Expand All
object

RFC 7807 Problem Details response for V3 API errors. Content-Type: application/problem+json

type
string

URI reference identifying the error type (links to documentation).

Min length1
title
string

Short human-readable summary of the error type.

Min length1
status
integer (int32)

HTTP status code.

detail
string | null

Human-readable explanation specific to this occurrence.

instance
string | null

URI of the request that generated the error.

trace_id
string | null

Request trace identifier for correlation.

errors
Array of object (ApiError) | null

Structured list of specific errors (extension field).

object

Represents an error returned by the API.

code
string

Machine-readable error code (e.g. VALIDATION_ERROR, RESOURCE_NOT_FOUND).

Min length1
message
string

Human-readable error message.

Min length1
field
string | null

The request field that caused the error, if applicable.

details
string | null

Additional context about the error.

warnings
Array of object (ApiWarning) | null

Non-fatal warnings (extension field).

object

Represents a non-fatal warning from the API.

code
string

Machine-readable warning code.

Min length1
message
string

Human-readable warning message.

Min length1
404

Article with the specified ID was not found.

Resource not found

The requested resource was not found.

{
  "type": "https://developer.document360.com/errors/not-found",
  "title": "Not Found.",
  "status": 404,
  "detail": "The requested resource does not exist or has been deleted.",
  "instance": null,
  "trace_id": "req_abc123def456",
  "errors": [
    {
      "code": "RESOURCE_NOT_FOUND",
      "message": "The requested resource was not found.",
      "field": null,
      "details": null
    }
  ],
  "warnings": null
}
Expand All
object

RFC 7807 Problem Details response for V3 API errors. Content-Type: application/problem+json

type
string

URI reference identifying the error type (links to documentation).

Min length1
title
string

Short human-readable summary of the error type.

Min length1
status
integer (int32)

HTTP status code.

detail
string | null

Human-readable explanation specific to this occurrence.

instance
string | null

URI of the request that generated the error.

trace_id
string | null

Request trace identifier for correlation.

errors
Array of object (ApiError) | null

Structured list of specific errors (extension field).

object

Represents an error returned by the API.

code
string

Machine-readable error code (e.g. VALIDATION_ERROR, RESOURCE_NOT_FOUND).

Min length1
message
string

Human-readable error message.

Min length1
field
string | null

The request field that caused the error, if applicable.

details
string | null

Additional context about the error.

warnings
Array of object (ApiWarning) | null

Non-fatal warnings (extension field).

object

Represents a non-fatal warning from the API.

code
string

Machine-readable warning code.

Min length1
message
string

Human-readable warning message.

Min length1
429

Rate limit exceeded. Retry after the duration specified in the Retry-After header.

Headers
Retry-After
integer
Number of seconds to wait before retrying the request. Use exponential backoff with jitter for optimal retry behavior.
X-RateLimit-Limit
integer
The maximum number of requests allowed in the current time window. Limits are applied per API token per project.
X-RateLimit-Remaining
integer
The number of requests remaining in the current time window. When this reaches 0, subsequent requests will receive a 429 response.
X-RateLimit-Reset
integer
The UTC epoch timestamp (in seconds) when the current rate limit window resets.
Rate limit exceeded

Rate limit exceeded.

{
  "type": "https://developer.document360.com/errors/too-many-requests",
  "title": "Too Many Requests.",
  "status": 429,
  "detail": "Rate limit exceeded. Retry after the duration specified in the Retry-After header.",
  "instance": null,
  "trace_id": "req_abc123def456",
  "errors": [
    {
      "code": "TOO_MANY_REQUESTS",
      "message": "Rate limit exceeded. Retry after the duration specified in the Retry-After header.",
      "field": null,
      "details": null
    }
  ],
  "warnings": null
}
Expand All
object

RFC 7807 Problem Details response for V3 API errors. Content-Type: application/problem+json

type
string

URI reference identifying the error type (links to documentation).

Min length1
title
string

Short human-readable summary of the error type.

Min length1
status
integer (int32)

HTTP status code.

detail
string | null

Human-readable explanation specific to this occurrence.

instance
string | null

URI of the request that generated the error.

trace_id
string | null

Request trace identifier for correlation.

errors
Array of object (ApiError) | null

Structured list of specific errors (extension field).

object

Represents an error returned by the API.

code
string

Machine-readable error code (e.g. VALIDATION_ERROR, RESOURCE_NOT_FOUND).

Min length1
message
string

Human-readable error message.

Min length1
field
string | null

The request field that caused the error, if applicable.

details
string | null

Additional context about the error.

warnings
Array of object (ApiWarning) | null

Non-fatal warnings (extension field).

object

Represents a non-fatal warning from the API.

code
string

Machine-readable warning code.

Min length1
message
string

Human-readable warning message.

Min length1
500

An unexpected server error occurred.

Unexpected server error

Unexpected server error.

{
  "type": "https://developer.document360.com/errors/internal-error",
  "title": "Internal Server Error.",
  "status": 500,
  "detail": "An unexpected error occurred. Please try again or contact support.",
  "instance": null,
  "trace_id": "req_abc123def456",
  "errors": [
    {
      "code": "INTERNAL_SERVER_ERROR",
      "message": "An unexpected error occurred.",
      "field": null,
      "details": null
    }
  ],
  "warnings": null
}
Expand All
object

RFC 7807 Problem Details response for V3 API errors. Content-Type: application/problem+json

type
string

URI reference identifying the error type (links to documentation).

Min length1
title
string

Short human-readable summary of the error type.

Min length1
status
integer (int32)

HTTP status code.

detail
string | null

Human-readable explanation specific to this occurrence.

instance
string | null

URI of the request that generated the error.

trace_id
string | null

Request trace identifier for correlation.

errors
Array of object (ApiError) | null

Structured list of specific errors (extension field).

object

Represents an error returned by the API.

code
string

Machine-readable error code (e.g. VALIDATION_ERROR, RESOURCE_NOT_FOUND).

Min length1
message
string

Human-readable error message.

Min length1
field
string | null

The request field that caused the error, if applicable.

details
string | null

Additional context about the error.

warnings
Array of object (ApiWarning) | null

Non-fatal warnings (extension field).

object

Represents a non-fatal warning from the API.

code
string

Machine-readable warning code.

Min length1
message
string

Human-readable warning message.

Min length1

Was this article helpful?